Augmented three dimensional point collection of vertical structures

ABSTRACT

Automated methods and systems of creating three dimensional LIDAR data are disclosed, including a method comprising capturing images of a geographic area with one or more image capturing devices as well as location and orientation data for each of the images corresponding to the location and orientation of the one or more image capturing devices capturing the images, the images depicting an object of interest; capturing three-dimensional LIDAR data of the geographic area with one or more LIDAR system such that the three-dimensional LIDAR data includes the object of interest; storing the three-dimensional LIDAR data on a non-transitory computer readable medium; analyzing the images with a computer system to determine three dimensional locations of points on the object of interest; and updating the three-dimensional LIDAR data with the three dimensional locations of points on the object of interest determined by analyzing the images.

INCORPORATION BY REFERENCE

The present patent application claims priority to and is a divisional of the patent application identified by U.S. Ser. No. 14/169,872, filed Jan. 31, 2014, all of which the entire contents of which are hereby incorporated herein by reference.

BACKGROUND

The utility industry continually tracks and measures physical assets of its networks (e.g., utility wires, utility poles, utility towers), and assesses the current conditions of those assets. With tracking and measurement, the industry seeks to understand information on the current state of the utilities including infringement rights, growth of vegetation, and the like.

Currently, assessment of the utility corridor includes the use of ground crews that walk or drive along the right of way. Companies may also use anything from helicopter flights carrying experts observing assets from the air, to aerial sensor platforms capturing photographic, positional, or other information through the use of remote sensing technology.

Remote sensing technology may have the ability to be the most cost effective while providing pertinent information for assessment of the utility corridor. Cost efficiency may be increased further with capture efficiency. For example, cost efficiency may be increased by using faster aircraft (e.g., fixed wing aircraft), allowing for collection of data over a large number of utility line miles, and the like. Additionally, the use of multiple sensors may aid in collecting large amounts of sensor data, such as, for example, visible cameras, infra-red cameras, and LIDAR scanners.

One direction that the utility industry is developing is modeling assets and features in three dimensions. One base representation of this structure is known as a Method 1 structure model. Currently, this is produced by collecting three-dimensional data points through the use of a LIDAR scanner. By flying low and slow, helicopter systems capture 10 to 20 points per square meter, producing dense point grids. Even at 40 points per grid, however, the average spacing between each point may be 15-cm or about 6 inches. For smaller structures, this may cause measurement inaccuracy.

While lasers have been achieving higher pulse frequencies, there are physical limitations to collecting higher and denser three-dimensional point clouds from a LIDAR scanner. First, the high density point clouds may require flying lower and slower, running counter to a goal of higher efficiency. Second, in order to achieve the higher pulse repetition rates, multiple pulses may need to be in the air simultaneously. Even though light travels extremely quickly, it may take a set time to reach the ground and reflect back to the sensor of the LIDAR scanner. If too many pulses are in the air simultaneously, subsequent pulses may cause interference.

Traditional LIDAR scanner collection methods typically direct and orient the LIDAR collection system straight down (i.e., nadir). This may only allow for 10 to 20 points per square meter on the ground or on a horizontal structure. When vertical structures are present, however, the point density is even further reduced. For a fully vertical surface, the LIDAR scanner may only collect points prior to the vertical structure and on a horizontal surface of the structure at the vertical top. To produce vertical points, the LIDAR scanner may be tilted at an angle, however, now either multiple LIDAR system may need to be installed to capture multiple sides of the structure, or a conical collection path may need to be collected as described in a patent application identified by U.S. Ser. No. 13/797,172 that was filed on Mar. 12, 2013, which is hereby incorporated by reference in its entirety.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

To assist those of ordinary skill in the relevant art in making and using the subject matter hereof, reference is made to the appended drawings, which are not intended to be drawn to scale, and in which like reference numerals are intended to refer to similar elements for consistency. For purposes of clarity, not every component may be labeled in every drawing.

FIG. 1 illustrates an exemplary embodiment of a platform or vehicle carrying an image-capturing system and illustrates exemplary orthogonal and oblique images taken thereby.

FIG. 2 is a diagrammatic view of the image-capturing system of FIG. 1.

FIG. 3 is a block diagram of the image-capturing computer system of FIG. 2.

FIG. 4 is a block diagram of the image-capturing computer system of FIG. 2 communicating via a network with multiple processors and a geographical information system (GIS) data system.

FIG. 5 is an exemplary LIDAR 3D point cloud depiction illustrating classification of structures therein.

FIG. 6 is an exemplary diagram illustrating an exemplary utility tower having utility wires, a cross bar, and insulators.

FIG. 7 is another exemplary LIDAR 3D point cloud depiction illustrating parabolas fitted to adjacent utility wires, wherein the location of intersection of the parabolas estimates the location of a utility tower.

FIG. 8A and FIG. 8B are exemplary LIDAR 3D point clouds illustrating location and identification of clusters as utility wires and/or cross bars within the utility corridor.

FIG. 9 is a side view of the utility tower illustrated in FIG. 6 having a TGP vertical plane provided therethrough.

FIG. 10 is an exemplary diagrammatic view illustrating multiple rays projected from a platform to objects of interest on a utility tower based on the view of an oblique image, the rays intersecting the TGP vertical plane of the utility tower.

FIG. 11A is another exemplary diagrammatic view illustrating a single ray projected from a platform to an object of interest on a utility pole based on the view of an oblique image, the ray intersecting the TGP vertical plane of the utility tower.

FIG. 11B is a diagrammatic view illustrating boundaries of the opposing view of the oblique image illustrated in FIG. 11A.

FIG. 12 is an exemplary nadir image illustrating utility wires and a cross bar.

FIG. 13A is an exemplary image produced after a Gabor Filter is applied to the utility wires in the nadir image of FIG. 12.

FIG. 13B is an exemplary image produced after a maximum response threshold is applied to the image of FIG. 13A providing detected utility wires.

FIG. 14A is an exemplary image produced after a Gabor Filter is applied to the cross bar in the nadir image of FIG. 12.

FIG. 14B is an exemplary image produced after a maximum response threshold is applied to the image of FIG. 14A providing a detected cross bar.

FIG. 15A is an exemplary image produced after overlapping the images of FIG. 13B and FIG. 14B illustrating detected utility wires and a detected cross bar.

FIG. 15B is an exemplary image of the detected utility wires and detected cross bar of FIG. 15A having an extension applied to the detected cross bar.

FIG. 16 is an exemplary oblique image having the detected cross bar of FIG. 14B positioned therein.

FIG. 17 is another exemplary oblique image having the detected cross bar of FIG. 14B positioned therein, the oblique images of FIG. 16 and FIG. 17 being opposing views.

FIGS. 18A-18D illustrate an exemplary image displayed on the system of FIG. 2, and the use of an exemplary template for aligning to a utility tower within the image.

FIG. 19 is a diagrammatic view illustrating boundaries of two successive oblique images for finding additional three-dimensional points on the surface of a utility tower.

FIG. 20 is a LIDAR 3D point cloud generated from stereo pair oblique images showing ground points and utility tower points.

DETAILED DESCRIPTION

Before explaining at least one embodiment of the disclosure in detail, it is to be understood that the disclosure is not limited in its application to the details of construction, experiments, exemplary data, and/or the arrangement of the components set forth in the following description or illustrated in the drawings unless otherwise noted.

The disclosure is capable of other embodiments or of being practiced or carried out in various ways. Also, it is to be understood that the phraseology and terminology employed herein is for purposes of description, and should not be regarded as limiting.

The following detailed description refers to the accompanying drawings. The same reference numbers in different drawings may identify the same or similar elements.

As used in the description herein, the terms “comprises,” “comprising,” “includes,” “including,” “has,” “having,” or any other variations thereof, are intended to cover a non-exclusive inclusion. For example, unless otherwise noted, a process, method, article, or apparatus that comprises a list of elements is not necessarily limited to only those elements, but may also include other elements not expressly listed or inherent to such process, method, article, or apparatus.

As used in the instant disclosure, the terms “provide”, “providing”, and variations thereof comprise displaying or providing for display a webpage (e.g., webpage having one or more images and software to permit measurement within the images), electronic communications, e-mail, and/or electronic correspondence to one or more user terminals interfacing with a computer and/or computer network(s) and/or allowing the one or more user terminal(s) to participate, such as by interacting with one or more mechanisms on a webpage, electronic communications, e-mail, and/or electronic correspondence by sending and/or receiving signals (e.g., digital, optical, and/or the like) via a computer network interface (e.g., Ethernet port, TCP/IP port, optical port, cable modem, combinations thereof, and/or the like). A user may be provided with a web page in a web browser, or in a software application, for example.

Further, unless expressly stated to the contrary, “or” refers to an inclusive and not to an exclusive “or”. For example, a condition A or B is satisfied by one of the following: A is true (or present) and B is false (or not present), A is false (or not present) and B is true (or present), and both A and B are true (or present).

In addition, use of the “a” or “an” are employed to describe elements and components of the embodiments herein. This is done merely for convenience and to give a general sense of the inventive concept. This description should be read to include one or more, and the singular also includes the plural unless it is obvious that it is meant otherwise. Further, use of the term “plurality” is meant to convey “more than one” unless expressly stated to the contrary.

As used herein, any reference to “one embodiment,” “an embodiment,” “some embodiments,” “one example,” “for example,” or “an example” means that a particular element, feature, structure or characteristic described in connection with the embodiment is included in at least one embodiment. The appearance of the phrase “in some embodiments” or “one example” in various places in the specification is not necessarily all referring to the same embodiment, for example.

Circuitry, as used herein, may be analog and/or digital components, or one or more suitably programmed processors (e.g., microprocessors) and associated hardware and software, or hardwired logic. Also, “components” may perform one or more functions. The term “component,” may include hardware, such as a processor (e.g., microprocessor), an application specific integrated circuit (ASIC), field programmable gate array (FPGA), a combination of hardware and software, and/or the like.

Software may include one or more computer readable instructions that when executed by one or more components cause the component to perform a specified function. It should be understood that the algorithms described herein may be stored on one or more non-transient memory. Exemplary non-transient memory may include random access memory, read only memory, flash memory, and/or the like. Such non-transient memory may be electrically based, optically based, and/or the like.

It is to be further understood that, as used herein, the term user is not limited to a human being, and may comprise, a computer, a server, a website, a processor, a network interface, a human, a user terminal, a virtual computer, combinations thereof, and the like, for example.

Referring now to the Figures, and in particular to FIG. 1, shown therein is a schematic diagram of hardware forming an exemplary embodiment of an apparatus 10 for three-dimensional point collection of vertical structures. The apparatus 10 may include a platform and/or vehicle 12 carrying an image-capturing and geo-locating system 14.

The platform 12 may be an airplane, space shuttle, rocket, satellite, or any other suitable vehicle capable of carry the image-capturing system 14. For example, in some embodiments, the platform 12 may be a fixed wing aircraft.

The platform 12 may carry the image-capturing system 14 over an area of and at one or more altitudes above a surface 16. For example, the platform 12 may carry the image-capturing system 14 over a predefined area and at one or more predefined altitudes above the Earth's surface and/or any other surface of interest.

The platform 12 may be capable of controlled movement and/or flight. As such, the platform 12 may be manned or unmanned. In some embodiments, the platform 12 may be capable of controlled movement and/or flight along a pre-defined flight path and/or course. For example, the platform 12 may be capable of controlled movement and/or flight along the Earth's atmosphere and/or outer space. In some embodiments, the platform 12 may be capable of controlled movement and/or flight along a utility corridor.

The platform 12 may include a system for generating and/or regulating power. For example, the platform 12 may include one or more generators, fuel cells, solar panels, and/or batteries for powering the image-capturing and geo-locating system 14.

Referring to FIGS. 1 and 2, the image-capturing and geo-locating system 14 may include two or more oblique image capturing devices 18 a and 18 b, one or more vertical image-capturing devices 20, one or more LIDAR scanners 22, one or more global positioning system (GPS) receivers 24, one or more inertial navigation units (INU) 26, one or more clocks 28, one or more gyroscopes 30, one or more compasses 32, one or more altimeters 34. In some embodiments, each of the elements of the image-capturing and geo-locating system 14 may be interconnected with an image-capturing computer system 36.

Generally, the oblique image-capturing devices 18 a and 18 b and the vertical image-capturing device 20 may be capable of capturing images photographically and/or electronically. The oblique image-capturing devices 18 a and 18 b and the vertical image-capturing device 20 may include, but are not limited to, conventional cameras, digital cameras, digital sensors, charge-coupled devices, and/or the like. In some embodiments, the oblique image-capturing devices 18 a and 18 b and the vertical image-capturing device 20 may be an ultra-high resolution cameras. For example, in some embodiments, the oblique image-capturing devices 18 a and 18 b may be ultra-high resolution oblique capture systems, such as may be found in the Pictometry PentaView Capture System, manufactured and distributed by Pictometry International based in Henrietta, N.Y. Similarly, in some embodiments, the vertical image-capturing device 20 may also be a high resolution vertical capture system, such as may be found in the Pictometry PentaView Capture System.

The oblique image-capturing devices 18 a and 18 b and the vertical image-capturing device 20 may include known or determinable characteristics including, but not limited to, focal length, sensor size, aspect ratio, radial and other distortion terms, principal point offset, pixel pitch, alignment, and/or the like.

The oblique image-capturing devices 18 a and 18 b may include respective central axes A₁ and A₂. In some embodiments, the oblique image-capturing devices 18 a and 18 b may be mounted to the platform 12 such that axes A₁ and A₂ each may be at an angle of declination θ relative to a horizontal plane P as illustrated in FIG. 1. Declination angle θ may be any oblique angle. Generally, declination angle θ may be from approximately 20° (twenty degrees) to approximately 60° (sixty degrees). In some embodiments, the declination angle θ may be approximately 45° (forty-five degrees).

The vertical image-capturing device 20 may include central axis A₃. In some embodiments, the vertical image-capturing device 20 may be mounted to the platform 12 such that the angle of declination θ relative to a horizontal plane P of axis A₃ is approximately 90° (ninety degrees). As such, the vertical image-capturing device 20 may generally be mounted at nadir.

The oblique image-capturing devices 18 a and 18 b may acquire one or more oblique images and issue one or more image data signals (IDS) 40 a and 40 b corresponding to one or more particular oblique images or oblique photographs taken. The vertical image-capturing device 20 may acquire one or more nadir images and issue one or more image data signals (IDS) 42 corresponding to one or more particular nadir images or nadir photographs taken. Oblique images and/or nadir images may be stored in the image-capturing computer system 36.

The LIDAR scanner 22 may determine a distance between the platform 12 and an object of interest by illuminating the object of interest with a laser and analyzing the reflected light. An exemplary LIDAR scanner 22 may be the Riegl LMS-Q680i, manufactured and distributed by Riegl Laser Measurement Systems located in Horn, Austria. In some embodiments, the LIDAR scanner 22 may be a downward projecting high pulse rate LIDAR scanning system.

In some embodiments, the LIDAR scanner 22 may be mounted in an off-vertical position on the platform 12. For example, the LIDAR scanner 22 may be mounted to the platform 12 such that axis A₄ may be at an angle of declination θ relative to a horizontal plane P. Declination angle θ may be any oblique angle. In some embodiments, the declination angle θ may be any angle less than or equal to 80 degrees such that the axis A₄ is roughly 10 degrees or more up from nadir in either a forward or rearward direction. Mounting in an off-vertical position (i.e., non-nadir) may aid in obtaining points on a face of a vertical structure as described in further detail herein. In some embodiments, the LIDAR scanner 22 may collect on average between 5 and 10 points per square meter.

Alternatively, a helical scan LIDAR system may be used in lieu of, or in addition to, the LIDAR scanner 22. The helical scan LIDAR system may be mounted such that at least one portion of the scan pattern may be roughly 10 degrees or more up from nadir.

The GPS receiver 24 may receive global positioning system (GPS) signals 48 that may be transmitted by one or more global positioning system satellites 50. The GPS signals 48 may enable the location of the platform 12 relative to the surface 16 and/or an object of interest to be determined. The GPS receiver 24 may decode the GPS signals 48 and/or issue location signals and/or data 52. The location signals and/or data 52 may be dependent, at least in part, on the GPS signals 48 and may be indicative of the location of the platform 12 relative to the surface 16 and/or an object of interest. The location signals and/or data 52 corresponding to each image captured by the oblique image-capturing devices 18 a and 18 b and/or the vertical image-capturing device 20 may be received and/or stored by the image-capturing computer system 36 in a manner in which the location signals are associated with the corresponding image.

The INU 26 may be a conventional inertial navigation unit. The INU 26 may be coupled to and detect changes in the velocity (e.g., translational velocity, rotational velocity) of the oblique image capturing devices 18 a and 18 b, the vertical image-capturing devices 20, the LIDAR scanner 22, and/or the platform 12. The INU 26 may issue velocity signals and/or data 54 indicative of such velocities and/or changes therein to image-capturing computer system 36. The image-capturing computer system 36 may then store the velocity signals and/or data 54 corresponding to each oblique and/or nadir image captured by the oblique image-capturing devices 18 a and 18 b, the vertical image-capturing device 20, and/or points collected by the LIDAR scanner 22.

The clock 28 may keep a precise time measurement. For example, the clock 28 may keep a precise time measurement used to synchronize events within the image capturing and geo-locating system 14. The clock 28 may include a time data/clock signal 56. In some embodiments, the time data/clock signal 56 may include a precise time that an oblique and/or nadir image is taken by the oblique image-capturing devices 18 a and 18 b and/or the vertical image-capturing device 20, and/or the precise time that points are collected by the LIDAR scanner 22. The time data 56 may be received by and/or stored by the image-capturing computer system 36. In some embodiments, the clock 28 may be integral with the image-capturing computer system 36, such as, for example, a clock software program.

The gyroscope 30 may be a conventional gyroscope commonly found on airplanes and/or within navigation systems (e.g., commercial navigation systems for airplanes). Gyroscope 30 may submit signals including a yaw signal 58, a roll signal 60, and/or a pitch signal 62. In some embodiments, the yaw signal 58, the roll signal 60, and/or the pitch signal 62 may be indicative of the yaw, roll and pitch of the platform 12. The yaw signal 58, the roll signal 60, and/or the pitch signal 62 may be received and/or stored by the image-capturing computer system 36.

The compass 32 may be any conventional compass (e.g., conventional electronic compass) capable of indicating the heading of the platform 12. The compass 32 may issue a heading signal and/or data 64. The heading signal and/or data 64 may be indicative of the heading of the platform 12. The image-capturing computer system 36 may receive, store and/or provide the heading signal and/or data 64 corresponding to each oblique and/or nadir image captured by the oblique image-capturing devices 18 a and 18 b and/or the vertical image-capturing device 20.

The altimeter 34 may indicate the altitude of the platform 12. The altimeter 34 may issue an altimeter signal and/or data 66. The image-capturing computer system 36 may receive, store and/or provide the altimeter signal and/or data 66 corresponding to each oblique and/or nadir image captured by the oblique image-capturing devices 18 a and 18 b, and/or the vertical image-capturing device 20.

Referring to FIGS. 2 and 3, the image-capturing computer system 36 may be a system or systems that are able to embody and/or execute the logic of the processes described herein. Logic embodied in the form of software instructions and/or firmware may be executed on any appropriate hardware. For example, logic embodied in the form of software instructions or firmware may be executed on a dedicated system or systems, or on a personal computer system, or on a distributed processing computer system, and/or the like. In some embodiments, logic may be implemented in a stand-alone environment operating on a single computer system and/or logic may be implemented in a networked environment, such as a distributed system using multiple computers and/or processors.

In some embodiments, the image-capturing computer system 36 may include one or more processors 70 communicating with one or more image capturing input devices 72, image capturing output devices 74, and/or I/O ports 76 enabling the input and/or output of data to and from the image-capturing computer system 36.

FIG. 3 illustrates the image-capturing computer system 36 having a single processor 70. It should be noted, however, that the image-capturing computer system 36 may include multiple processors 70. In some embodiments, the processor 70 may be partially or completely network-based or cloud-based. The processor 70 may or may not be located in a single physical location. Additionally, multiple processors 70 may or may not necessarily be located in a single physical location.

The one or more image capturing input devices 72 may be capable of receiving information input from a user and/or processor(s), and transmitting such information to the processor 70. The one or more image capturing input devices 72 may include, but are not limited to, implementation as a keyboard, touchscreen, mouse, trackball, microphone, fingerprint reader, infrared port, slide-out keyboard, flip-out keyboard, cell phone, PDA, video game controller, remote control, fax machine, network interface, speech recognition, gesture recognition, eye tracking, brain-computer interface, combinations thereof, and/or the like.

The one or more image capturing output devices 74 may be capable of outputting information in a form perceivable by a user and/or processor(s). For example, the one or more image capturing output devices 74 may include, but are not limited to, implementations as a computer monitor, a screen, a touchscreen, a speaker, a website, a television set, a smart phone, a PDA, a cell phone, a fax machine, a printer, a laptop computer, an optical head-mounted display (OHMD), combinations thereof, and/or the like. It is to be understood that in some exemplary embodiments, the one or more image capturing input devices 72 and the one or more image capturing output devices 74 may be implemented as a single device, such as, for example, a touchscreen or a tablet.

Each of the data signals 40 a, 40 b, 42, 46, 52, 54, 56, 58, 60, 62, and/or 64 may be provided to the image capturing computer system 36. For example, each of the data signals 40 a, 40 b, 42, 46, 52, 54, 56, 58, 60, 62, and/or 64 may be received by the image capturing computer system 36 via the I/O port 76. The I/O port may comprise one or more physical and/or virtual ports.

In some embodiments, the image-capturing computer system 36 may be in communication with one or more additional processors 82 as illustrated in FIG. 4. In this example, the image-capturing computer system 36 may communicate with the one or more additional processors 82 via a network 80. As used herein, the terms “network-based”, “cloud-based”, and any variations thereof, may include the provision of configurable computational resources on demand via interfacing with a computer and/or computer network, with software and/or data at least partially located on the computer and/or computer network, by pooling processing power of two or more networked processors.

In some embodiments, the network 80 may be the Internet and/or other network. For example, if the network 80 is the Internet, a primary user interface of the image capturing software and/or image manipulation software may be delivered through a series of web pages. It should be noted that the primary user interface of the image capturing software and/or image manipulation software may be replaced by another type of interface, such as, for example, a Windows-based application.

The network 80 may be almost any type of network. For example, the network 80 may interface by optical and/or electronic interfaces, and/or may use a plurality of network topographies and/or protocols including, but not limited to, Ethernet, TCP/IP, circuit switched paths, and/or combinations thereof. For example, in some embodiments, the network 80 may be implemented as the World Wide Web (or Internet), a local area network (LAN), a wide area network (WAN), a metropolitan network, a wireless network, a cellular network, a Global System for Mobile Communications (GSM) network, a code division multiple access (CDMA) network, a 3G network, a 4G network, a satellite network, a radio network, an optical network, a cable network, a public switched telephone network, an Ethernet network, combinations thereof, and/or the like. Additionally, the network 80 may use a variety of network protocols to permit bi-directional interface and/or communication of data and/or information. It is conceivable that in the near future, embodiments of the present disclosure may use more advanced networking topologies.

The image capturing computer system 36 may be capable of interfacing and/or communicating with the one or more computer systems including processors 82 via the network 80. Additionally, the one or more processors 82 may be capable of communicating with each other via the network 80. For example, the image capturing computer system 36 may be capable of interfacing by exchanging signals (e.g., analog, digital, optical, and/or the like) via one or more ports (e.g., physical ports or virtual ports) using a network protocol, for example.

The processors 82 may include, but are not limited to implementation as a a variety of different types of computer systems, such as a server system having multiple servers in a configuration suitable to provide a commercial computer based business system (such as a commercial web-site), a personal computer, a smart phone, a network-capable television set, a television set-top box, a tablet, an e-book reader, a laptop computer, a desktop computer, a network-capable handheld device, a video game console, a server, a digital video recorder, a DVD player, a Blu-Ray player, a wearable computer, a ubiquitous computer, combinations thereof, and/or the like. In some embodiments, the computer systems comprising the processors 82 may include one or more input devices 84, one or more output devices 86, processor executable code, and/or a web browser capable of accessing a website and/or communicating information and/or data over a network, such as network 80. The computer systems comprising the one or more processors 82 may include one or more non-transient memory comprising processor executable code and/or software applications, for example. The image capturing computer system 36 may be modified to communicate with any of these processors 82 and/or future developed devices capable of communicating with the image capturing computer system 36 via the network 80.

The one or more input devices 84 may be capable of receiving information input from a user, processors, and/or environment, and transmit such information to the processor 82 and/or the network 80. The one or more input devices 84 may include, but are not limited to, implementation as a keyboard, touchscreen, mouse, trackball, microphone, fingerprint reader, infrared port, slide-out keyboard, flip-out keyboard, cell phone, PDA, video game controller, remote control, fax machine, network interface, speech recognition, gesture recognition, eye tracking, brain-computer interface, combinations thereof, and/or the like.

The one or more output devices 86 may be capable of outputting information in a form perceivable by a user and/or processor(s). For example, the one or more output devices 86 may include, but are not limited to, implementations as a computer monitor, a screen, a touchscreen, a speaker, a website, a television set, a smart phone, a PDA, a cell phone, a fax machine, a printer, a laptop computer, an optical head-mounted display (OHMD), combinations thereof, and/or the like. It is to be understood that in some exemplary embodiments, the one or more input devices 84 and the one or more output devices 86 may be implemented as a single device, such as, for example, a touchscreen or a tablet.

Referring to FIGS. 2 and 3, in some embodiments, the image-capturing computer system 36 may include one or more processors 70 working together, or independently to execute processor executable code, and one or more memories 90 capable of storing processor executable code. In some embodiments, each element of the image-capturing computer system 36 may be partially or completely network-based or cloud-based, and may or may not be located in a single physical location.

The one or more processors 70 may be implemented as a single or plurality of processors working together, or independently, to execute the logic as described herein. Exemplary embodiments of the one or more processors 70 may include, but are not limited to, a digital signal processor (DSP), a central processing unit (CPU), a field programmable gate array (FPGA), a microprocessor, a multi-core processor, and/or combination thereof, for example. The one or more processors 70 may be capable of communicating via the network 80, illustrated in FIG. 4, by exchanging signals (e.g., analog, digital, optical, and/or the like) via one or more ports (e.g., physical or virtual ports) using a network protocol. It is to be understood, that in certain embodiments, using more than one processor 70, the processors 70 may be located remotely from one another, in the same location, or comprising a unitary multi-core processor. The one or more processors 70 may be capable of reading and/or executing processor executable code and/or capable of creating, manipulating, retrieving, altering, and/or storing data structures into one or more memories 90.

The one or more memories 90 may be capable of storing processor executable code. Additionally, the one or more memories 90 may be implemented as a conventional non-transient memory, such as, for example, random access memory (RAM), a CD-ROM, a hard drive, a solid state drive, a flash drive, a memory card, a DVD-ROM, a floppy disk, an optical drive, combinations thereof, and/or the like, for example.

In some embodiments, the one or more memories 90 may be located in the same physical location as the image capturing computer system 36. Alternatively, one or more memories 90 may be located in a different physical location as the image capturing computer system 36, the with image capturing computer system 36 communicating with one or more memories 90 via a network such as the network 80, for example. Additionally, one or more of the memories 90 may be implemented as a “cloud memory” (i.e., one or more memories 90 may be partially or completely based on or accessed using a network, such as network 80, for example).

Referring to FIGS. 2 and 3, the one or more memories 90 may store processor executable code and/or information comprising one or more databases 92 and program logic 94. In some embodiments, the processor executable code may be stored as a data structure, such as a database and/or data table, for example.

In use, the image-capturing computer system 36 may execute the program logic 94 which may control the reading, manipulation, and/or storing of data signals 40 a, 40 b, 42, 46, 52, 54, 56, 58, 60, 62, and/or 64. For example, the program logic may read data signals 40 a, 40 b, and/or 42, and may store them within the one or more memories 90. Each of the location signals, 46, 52, 54, 56, 58, 60, 62, and/or 64, may represent the conditions existing at the instance that an oblique image and/or nadir image is acquired and/or captured by the oblique image capturing devices 18 a and/or 18 b, and/or the vertical image-capturing device 20.

In some embodiments, the image capturing computer system 36 may issue an image capturing signal to the oblique image-capturing devices 18 a and/or 18 b, and/or the vertical image-capturing device 20 to thereby cause those devices to acquire and/or capture an oblique image and/or a nadir image at a predetermined location and/or at a predetermined interval. In some embodiments, the image capturing computer system 36 may issue the image capturing signal dependent on at least in part on the velocity of the platform 12. Additionally, the image capturing computer system 36 may issue a point collection signal to the LIDAR scanner 22 to thereby cause the LIDAR scanner to collect points at a predetermined location and/or at a predetermined interval.

Program logic 94 of the image capturing computer system 36 may decode, as necessary, and/or store the aforementioned signals within the memory 90, and/or associate the data signals with the corresponding image data signals 40 a, 40 b and/or 42, or the corresponding LIDAR scanner signals 46. Thus, for example, the altitude, orientation, roll, pitch, yaw, and the location of each oblique image capturing device 18 a and 18 b, and/or vertical image-capturing device 20 relative to the surface 16 and/or object of interest for images captured may be known. More particularly, the [X, Y, Z] location (e.g., latitude, longitude, and altitude) of an object or location seen within the images or location seen in each image may be determined. Similarly, the altitude, orientation, roll, pitch, yaw, and the location of the LIDAR scanner 22 relative to the surface 16 and/or object of interest for collection of data points may be known. More particularly, the [X, Y, Z] location (e.g., latitude, longitude, and altitude) of a targeted object or location may be determined.

The platform 12 may be piloted and/or guided through an image capturing path that may pass over a particular area of the surface 16. In some embodiments, the image capturing path may follow one or more utility lines. The number of times the platform 12 and/or oblique image capturing devices 18 a and 18 b and/or vertical image-capturing device 20 pass over the area of interest may be dependent at least in part upon the size of the area and the amount of detail desired in the captured images.

As the platform 12 passes over an area of interest, a number of oblique images and/or nadir images may be captured by the oblique image-capturing devices 18 a and 18 b and/or the vertical image-capturing device 20. In some embodiments, the images may be captured and/or acquired by the oblique image-capturing devices 18 a and 18 b, and/or the vertical image-capturing device 20 at predetermined image capture intervals that may be dependent, at least in part, upon the velocity of the platform 12. For example, the safe flying height for a fixed wing aircraft may be a minimum clearance of 2,000′ above the surface 16, and may have a general forward flying speed of 120 knots. In this example, the oblique image-capturing devices 18 a and 18 b may capture 1 cm to 2 cm ground sample distance imagery, and the vertical image-capturing device 20 may be capable of capturing 2 cm to 4 cm ground sample distance imagery.

The image data signals 40 a, 40 b and 42 corresponding to each image acquired may be received by and/or stored within the one or more memories 90 of the image capturing computer system 36 via the I/O port 76. Similarly, the location signals, 52, 54, 56, 58, 60, 62, and/or 64 corresponding to each captured image may be received and stored within the one or more memories 90 of the image-capturing computer system 36 via the I/O port 76. The LIDAR scanner signals 46 may be received and stored as LIDAR 3D point clouds.

Thus, the location of the oblique image capturing devices 18 a and 18 b, and/or the location of the vertical image-capturing device 20 relative to the surface 16 at the precise moment each image is captured is recorded within the one or more memories 90 and associated with the corresponding captured oblique and/or nadir image.

The processor 70 may create and/or store in the one or more memories 90, one or more output image and data files. For example, the processor 70 may convert image data signals 40 a, 40 b and/or 42, location signals, 52, 54, 56, 58, 60, 62, and/or 64, and the LIDAR scanner signals 46 into computer-readable output image, data files, and LIDAR 3D point cloud files. The output image, data files, and LIDAR 3D point cloud files may include a plurality of captured image files corresponding to captured oblique and/or nadir images, positional data, and/or LIDAR 3D point clouds corresponding thereto.

Output image, data files, and LIDAR 3D point cloud files may then be further provided, displayed and/or used for obtaining measurements of and between objects depicted within the captured images, including measurements of the heights of such objects. In some embodiments, the image capturing computer system 36 may be used to provide, display and/or obtain measurements of and between objects depicted within the captured images. Alternatively, the image capturing computer system 36 may deliver the output image, data files, and/or LIDAR 3D point clouds to one or more processors, such as, for example, the processors 82 illustrated in FIG. 4 for processors 82 to provide, display and/or obtain measurement.

In some embodiments, delivery of the output image, data files, and/or LIDAR 3D point cloud files may also be by physical removal of the files from the image capturing computer system 36. For example, the output image, data files, and/or LIDAR 3D point cloud files may be stored on a removable storage device and transported to one or more processors 82. In some embodiments, the image capturing computer system 36 may provide at least a portion of the display and/or determine at least a portion of the measurements further described herein.

For simplicity, the following description for measurement of objects of interest as described herein includes reference to utility wires, utility poles, and utility towers, however, it should be understood by one skilled in the art that the methods described herein may be applied to any structure of interest. For example, the methods may be applied to a building structure, such as a roof, wherein the roof is the object of interest.

Referring to FIGS. 5 and 6, the output image file and data files may be used to geo-reference the oblique and/or nadir images. Exemplary methods for georeferencing the imagery may be found in at least U.S. Pat. Nos. 7,424,133 and 5,247,356, which are hereby incorporated by reference in their entirety.

The LIDAR 3D point cloud files may be processed and geo-referenced. For example, the LIDAR 3D point cloud files may be processed and geo-referenced using software such as Reigl's RiProcess application, distributed by Reigl located in Horn, Austria. Generally, processing of the LIDAR 3D point cloud files may include classifying points in the data into at least three categories: objects of interest 100 (e.g., towers 114, utility wires 110), background structures 102 (e.g., background vegetation, background structures), and surface points 16 (e.g., ground points). For example, the LIDAR post processing software may classify points as being the surface 16, e.g., ground, utility wires 110, towers 114, and/or foliage or other background items. The towers 114 can be utility towers configured to support the utility wires 110. The towers 114 can be implemented in a variety of forms, such as H-style utility towers, utility poles, steel truss style utility towers, concrete utility towers and combinations thereof. In some embodiments, the classifications listed above may be further subdivided as needed.

Referring to FIGS. 4, 5, and 6, in some embodiments, the images and/or 3D point cloud files can be scanned for horizontal objects of interest to locate utility wires 110, for example. Scanning for horizontal objects of interest, such as the utility wires 110, may be aided by the use of a geographical information system (GIS) data system 120 illustrated in FIG. 4. For example, the GIS data system 120 may include data from a utility company. GIS data may include, but is not limited to, right of way centerlines, GIS data for location of towers 114, GIS data for utility wires 110, Computer Aided Design (CAD) data for the utility wires 110, and/or the like.

In some embodiments, the GIS centerline vector data may be used to automatically follow the path of the utility network. The GIS centerline data is typically maintained by the utility companies and may include the geographical position on the Earth of individual towers 114; however, such data may not be updated and/or may be changed. The geographical position can be in any suitable coordinate system, such as Latitude/Longitude. The centerlines, however, may remain largely unchanged as they may typically be tied to a property boundary.

If the GIS data is inaccurate and/or unavailable, utility wires 110 may also be identified using either LIDAR 3D point cloud files and/or the image data without the use of GIS data. For example, utility wires 110 may generally be relatively straight lines and distinctive as compared to other structures within the image. In three-dimensional space, utility lines 110 may be above ground and at a relatively consistent elevation range. As such, standard edge detection algorithms may be used to identify the utility lines 110. Standard edge detection algorithms may include, but are not limited to, a Laplacian filter and/or the like. Additionally, in some embodiments, a Hough Transform and/or similar algorithm, may determine the long straight feature of the utility wires 110.

In some embodiments, a Gabor filter may be used to identify the utility wires 110. The general use of a Gabor filter in identifying utility lines is described in Mu, Chao, et al. “Power lines extraction from aerial images based on Gabor filter.” International Symposium on Spatial Analysis, Spatial Temporal Data Modelling, and Data Mining. International Society for Optics and Photonics, 2009, which is hereby incorporated by reference in its entirety. This method may be further modified to identify utility wires 110 and cross bars 112 of the towers 114. Even further, the method may be modified to apply photogrammetry to automatically isolate features in the oblique image(s) as discussed in further detail herein.

For LIDAR 3D point cloud files, intensity values of points may be identified and reviewed to determine the location of the utility wires 110. Generally, parallel lines having periodic perpendicular edges may be identified as utility wires 110. Additional LIDAR data points of the LIDAR 3D point cloud file may be discarded if the LIDAR data points do not correspond to the parallel lines and/or periodic perpendicular edges. For example, single lines having no close parallel line (e.g., within 15′ or less, for example) may be discarded. Additional discrimination may be performed if there are no identifiable cross arms 112 in the LIDAR data points of the LIDAR 3D point cloud file. For example, if there are no periodic edges running perpendicular to parallel lines, the points are probably not associated with utility wires 110.

Once utility wires 110 are identified, a wire centerline W_(C) may be determined to follow the utility corridor. In some embodiments, the wire centerline W_(c) may be determined using a line fitting algorithm (e.g., RANSAC least squares algorithm). Using the wire centerline W_(C) as a guide, measurements may be taken at predetermined increments of the utility corridor along the wire centerline W_(C). In some embodiments, the increments may be less than the height of the smallest tower 114 being searched. At each increment, a search may be performed to identify one or more clusters of LIDAR data points corresponding to one or more towers 114, cross arms 112, and/or utility wires 110.

LIDAR data points for utilities may further be discarded based on elevation. For example, if the LIDAR data point(s) are unclassified (i.e., not classified as an object of interest 100, background structures 102, or surface 16), then the unclassified points within a predetermined distance of the lowest elevation points that are classified may be discarded. These points may be discarded as they may relate to the surface 16 and/or background vegetation. Unclassified points above the lowest elevation points that are classified may be considered to be part of the tower 114. Typically, taller vegetation may be kept below utility lines 110, and as such, vegetation point may not be included in the search. In identifying vegetation in relation to towers 114, the algorithm may also look for an increased number of points at a predetermined radius (e.g., 30′ radius) from a search point having unclassified points, since such points will not be related to utility wires 110 if they are vegetation.

In some embodiments, towers 114, may be identified using catenary curves of the utility lines 110. For example, as illustrated in FIG. 7, utility wires 110 generally form parabolic curves 130 and 132 meeting at a distinct attachment point 134. Analyzing the utility wires 110 to find adjacent and intersecting parabolic curves 130 and 132 may determine the distinct attachment point 134 at the location of intersection. The towers 114 location may be found at the distinct attachment point 134.

In some embodiments, once a cluster of LIDAR data points is identified, an algorithm may calculate a center of mass and grow the cluster such that it includes all of points reasonably within the area of interest. For example, a point density algorithm may be used to grow the cluster such that new points may be below a selected density threshold. A Convex Hull algorithm may then be used to isolate the cluster of points and identify a grouping of points, classifying the points as the tower 114.

Referring to FIG. 5, cross arms 112 may be identified within the oblique and/or nadir images. Cross arms 112 may be identified as horizontally extending, beam-like structures located close to or at relatively the same elevation of the utility wires 110. In some embodiments, cross arms 112 may have a major axis extending near perpendicular (e.g., within 10 degrees of perpendicular) to and at relatively the same elevation of the utility wires 110. In some embodiments, the search and/or scanning may be aided by the use of GIS data for the location of the towers 114 and/or from the CAD data of the towers 114.

In some embodiments, the output image files and/or the LIDAR 3D point cloud files may be scanned for horizontally extending structures (e.g., having a major axis extending horizontally) indicative of cross arms 112, as discussed above. FIGS. 8A and 8B show a LIDAR 3D point cloud with FIG. 8B as a magnified view of the portion around the object of interest 100. In FIGS. 8A and 8B, the LIDAR 3D point cloud files may classify objects of interest 100 and background vegetation 102. The utility wires 110 may be identified in the LIDAR 3D point cloud file and/or the output image files. As such, the cross arms 112 may be identified as horizontal structures near perpendicular to and/or interesting with the utility wires 110 as illustrated in FIG. 8B. In some embodiments, the industry standard edge detection and line identification algorithms may be used to determine the location of the utility wires 110 using the LIDAR data files.

Utility wires 110 may make a turn in the utility line. At such a turn, the angle of the structure of the cross arm 112 may not be perpendicular, but may typically be either perpendicular to a single utility wire 110 or the other wire, bisecting the angle formed by the two utility wires, or somewhere in between the perpendiculars and the angle bisector.

Once the cross arms 112 are identified within the LIDAR 3D point cloud files and/or the output image files, the vertical structures beneath the cross arms 112 may be identified. Vertical structures may include towers 114, and/or insulators 116. The vertical structures may be identified using LIDAR data points and/or algorithms capable of isolating points corresponding to the vertical structures.

Prior to or after the horizontal and the vertical structures have been identified in the image files, the images files can be processed to create a pre-calculated tessellated ground plane for each of the images files. The tessellated ground plane can be implemented as a data file or data table having elevation values that are correlated to specific geographical locations on the surface 16 of the Earth. The tessellated ground plane includes a plurality of individual facets having respective elevations. Adjacent pairs of facets share at least two vertices. Each facet has a respective pitch and slope. Tessellated ground plane can be created based upon various data and resources, such as, for example, topographical maps, and/or digital raster graphics, survey data, and various other sources. Techniques for making and using an exemplary tessellated ground plane is described in U.S. Pat. No. 7,424,133, which is hereby incorporated herein by reference.

Referring to FIGS. 6 and 9, the tessellated ground plane can be supplemented with further information and/or data points indicative of TGP Vertical planes Pv representative of a mathematical model of and to permit measurements to be made on an object of interest, such as a vertical structure. For example, a TGP vertical plane P_(V) may be placed transversely through the tower 114 and may be relatively parallel to the orientation of the cross arms 112. Generally, the TGP vertical plane P_(V) of each tower 114 may be formed by identifying points of the tower 114 positioned at a distance farthest from the wire centerline W_(C) in the (x, y) direction and generally perpendicular to the utility wires 110. The TGP vertical plane P_(v) may be formed of TGP vertical plane data of real-world three-dimensional location values representative of at least two points on the object of interest depicted in the oblique image and positioned at a distance farthest from a centerline of the object of interest. These points may correspond to the ends 116 a and 116 b of the cross arms 112. For example, in FIGS. 6 and 8, points (X₁, Y₁, Z_(1A)) and (X₃, Y₃, Z_(3A)) are positioned at the farthest extent of the tower 114 away from the centerline of the utility wires 110 (X₂, Y₂, Z_(2A)). Connecting corresponding points at roughly the same vertical elevation may produce a three-dimensional line roughly corresponding to a center C of the cross arm 112. Optionally, a line fitting algorithm may be used to manipulate the line L₁ such that the line L₁ is as close to parallel to the cross arm 112 data points and the “center of mass” of the tower 114. The TGP vertical plane Pv may be formed such that it terminates the height of the cross arms 112, or anywhere on the pole and/or tower 114. For example, the TGP vertical plane Pv may be formed such that it extends to the very top height of the pole and/or tower 114. In this example, any and all features on the pole and/or tower 114 may be identified and/or measured using the single ray projection method once the TGP vertical plane Pv is incorporated into the standard ground plane.

Using these points (X₁, Y₁, Z_(1A)) and (X₃, Y₃, Z_(3A)) positioned at the farthest extent of the tower 114, a line L₁ may be fitted therebetween. The line L₁ may generally be through the “center of mass” of the structure points of the tower 114. The line L₁ may be extended in a z-direction to the top of the tower 114, and may also be extended in a z-direction down to the surface 16 to form the TGP vertical plane P_(V). The TGP vertical plane data may include at least one real-world three-dimensional location value representative of a three-dimensional location where the object of interest over lies the Earth and having an elevation value indicative of an elevation of the terrain underneath the object of interest. For example, in FIG. 6, the line L₁ may be extended upwards in the z-direction to include points (X₁, Y₁, Z_(1C)) and (X₁, Y₁, Z_(3C)). The line L₁ may also be extended downwards in the z-direction to the surface 16 to include points (X₁, Y₁, Z_(1B)) and (X₃, Y₃, Z_(3B)). Modification of the line L₁ with Z values greater than or lower than Z_(1A) and Z_(3A) may form an outer boundary of the TGP vertical plane P_(V).

Generally, a vast majority of structures on the tower 114 may lie on the TGP vertical plane P_(V). As such, the TGP vertical plane P_(V) may be used as a facet within the tessellated ground plane (TGP) for single ray projection measurement methods as described in U.S. Pat. No. 7,424,133, which is hereby incorporated by reference in its entirety. In this instance, the one or more processors 82 may receive one or more signal indicative of a selection and pixel location within a displayed image of a first point and a second point on the tower 114 depicted within the displayed oblique image. The one or more processors 82 may then retrieve from a data file, location data indicative of a position and orientation of an image capturing device (e.g., the oblique image capturing devices 18 a and 18 b) used to capture the displayed oblique image, and a TGP vertical plane approximating a center of mass of the tower 114. The one or more processors 82 may then determining real-world locations of the first point and the second point utilizing the pixel location of the one or more selected points within the oblique image, the location data and the TGP vertical plane data using the single ray projection measurement methods.

Referring to FIGS. 10, 11A and 11B, in order to compensate, at least in part, for changes in elevation and resultant inaccuracies in the measurement of and between objects of interest within an image, location of points within the oblique and/or nadir image may be determined using the TGP vertical plane P_(V) for reference as a facet within the tessellated ground plane.

Element 150 illustrates the boundaries of a view of a metric oblique image. The oblique image view 150 includes a view of the tower 114 seen within the LIDAR data points. The TGP vertical plane P_(V) is shown extending through the tower 114. Generally, the geo-location of a point of interest within the oblique image view 150 may be calculated by determining the point of intersection of a ray 152 projected from the platform 12 towards the surface 16. For example, in some embodiments, a user may select a point in the image 150 corresponding to an object on the tower 114. The ray 152 may be projected to intersect the TGP vertical plane P_(V) prior to the ray 152 intersecting the surface 16. For example, the ray 152 interests the vertical plane P_(V) in FIG. 10 at intersection point 154. Thus, the location for the point of intersection 154 may be determined on the tower 114 rather than a point on the surface 16 or other tessellated ground plane.

Referring to FIG. 10, the TGP vertical plane P_(V) may also be used to determine a length L_(O) of an object on the tower 114. When a first point of the object of interest on the tower 114 is selected, the row and column (e.g., (X, Y) location) of that pixel in the image 150 may be used to calculate projection of the ray 152 towards the surface 16. The algorithm may then identify where the intersection point 154 of the ray 152 occurs on the TGP vertical plane P_(V) and report the intersection point 154 location on the TGP vertical plane P_(V). The three-dimensional location of the intersection point 154 can be determined using bilinear interpolation using the coordinates (X₁,Y₁,Z_(1A)), (X₁,Y₁,Z_(1B)), (X₃,Y₃,Z_(3A)), (X₃,Y₃,Z_(3B)). If a pixel corresponding to a second point of the object of interest on the tower 114 is selected within the image 150, the algorithm may again be used to produce a second ray 156 and identify the intersection point 158 of the vertical plane P_(V). The distance between the first intersection point 154 and the second intersection point 158 may be determined (e.g., using Pythagorean Theorem), resulting in the length L_(o) of the object measured in the image 150.

Generally, in using the TGP vertical plane P_(V), if an object of interest is located 5′ off of the TGP vertical plane P_(V) when the oblique image view 150 is captured at 2,000′ over ground at a roughly 45 degree angle, an object 50′ up on the tower 114 may be over 2,750′ away. Thus, being 5′ away from the TGP vertical plane P_(V) may only result in a measurement scaling error of less than 0.2% of the actual measurement. By contrast in using a facet conforming to a portion of the surface 16, 50′ below the object (i.e., surface 16), there may be a contribution of 14× the amount of error due to relative path length (i.e., 50′ down and 50′ over, due to a 45 degree view angle). As such, the corresponding point on the ground may be 70′ away (i.e., 14× the 5′ distance). Additionally, the ground plane (i.e., surface 16) may not be parallel to the object being measured.

Referring to FIGS. 6 and 11A, the TGP vertical plane P_(V) may also be used to determine a height H above ground of an object of interest. For example, the TGP vertical plane P_(V) may be used to determine the height H above ground of connection points of the utility wires 110 to the tower 114. A user (e.g., human, processor) may select one or more pixels within the image 150 depicting the insulator 116 a, 116 b, and/or 116 c. The insulators 116 a-116 c are generally the mechanism used to connect the utility wires 110 to the tower 114. An algorithm may use a pixel location (e.g., x, y) within the image 150 that is indicative of the user selected point to project the ray 152 through the focal plane and down towards the surface 16. Using the ray, the location of the intersection point 154 located on the insulators 116 a, 116 b, and/or 116 c, may be determined on the TGP vertical plane P_(V). The second point of intersection may be selected on the surface 16 providing the point of intersection on a facet within the tessellated ground plane 158. The Z distance between the two points 154 and 158 in space may be determined to be the height H above ground for the connection point.

It should be noted that the tessellated ground plane 158 having facets conforming to the contours of the surface 16 of the Earth, as described in U.S. Pat. No. 7,424,133, may also be determined using data points collected by the LIDAR scanner 22. Using the normal tessellated ground plane 158, the intersection of the ground may be determined as the intersection of the TGP vertical plane P_(V) with the tessellated ground plane 158. Using the tessellated ground plane 158, the measurement of the height H may be increased in accuracy in some embodiments, and also may be used for purposes of thermal line ratings.

Referring to FIGS. 6, 11A and 11B, to further increase accuracy, a user may select the same or similar connection point on the tower 114 in two or more oblique image views 150 and 150 b. For example, the user may select the insulator 116 a on the tower 114 in a forward facing oblique image 150 as illustrated in FIG. 11A and a rear facing oblique image 150 b as illustrated in FIG. 11B. In each oblique image view 150 and 150 b, the heights H and H₂ respectively of the insulator 116 a may be determined as described herein. The intersection points 154, 154 b and 156, 156 b may be found using standard stereo pair photogrammetry techniques such that the location of each point may be determined with increased accuracy as compared to using a single image. The tessellated ground plane 158 may also be used to determine the heights H and H₂ increasing accuracy of the determination even further. The tessellated ground plane 158 may further increase accuracy due to the error balancing nature of stereo-photogrammetry, however, single ray projection measurements may also be used to review the measurements for proper selection.

In some embodiments, the stereo analysis using standard stereo pair photogrammetry techniques may be automated or substantially automated. Generally, a corner detection algorithm may be used to find points of interest in two separate oblique image views 150 and 150 b for an object. A correlation for the two points of interest may be determined to identify common points between the two points of interest. The strongest correlation may generally be on the desired object.

Using this example, by selecting a pixel indicative of a connection point (e.g., insulator 116 a) in a first oblique image view 150, the ray 152 may be determined. The resulting intersection point 154 may be used to select a second oblique image view 150 b from an opposing direction. The TGP vertical plane P_(V) may then be used to find an end of the insulator 116 a. A standard corner detection algorithm and/or a correlation algorithm may then be used to find a pixel indicative of the end of the insulator 116 a in the second image 150 b. Once the end of the insulators 116 a in the second image 150 b is located, the location of the pixel within the second image 150 b, the TGP vertical plane P_(V), and the camera position and orientation of the second image 150 b may be used to cast a second ray 152 b through the end of the insulator 116 a in the second image 150 b. The resulting two rays 152 and 152 b may then be used in industry standard stereo photogrammetry to locate the intersection points 154, 154 b and 156, 156 b. The resulting identification and measurement of and between the points 154, 154 b and 156, 156 b may be further incorporated into CAD modeling, thermal line ratings, engineering plans, and/or any other use for three-dimensional point determinations. Even further, identification and/or measurement between multiple points between multiple images may aid in formation of Method 1 structure models as known in the industry.

Referring to FIGS. 12-17, identification of matching points between two opposing oblique images 150 a and 150 b may also be identified using a Gabor filter. The orientation and spatial frequency of the Gabor filter may be tuned such that the filter acts as an oriented bandpass filter.

Referring to FIGS. 12 and 13A, in a nadir image 200, the utility wires 110 include distinct oriented spatial frequencies that may be identified using a Gabor filter providing a Gabor filters image 13A. The orientation of the utility wires 110 in the nadir image 200 may be identified based on the orientation of the platform 12 (illustrated in FIG. 1) during flight. Additionally, identification of the spacing between each utility wire 110 may aid in tuning the Gabor filter to produce maximum response, however, a reasonable estimation of the frequency may be used.

Referring to FIGS. 13A and 13B, a maximum value threshold may isolate the highest response from the Gabor filtered image 210 creating a threshold image 220. Once the threshold image 220 is created, linear features may be identified within the threshold image 220 producing detected utility wires 222. For example, detected utility wires 222 may be identified within the threshold image 220 using the Hough Transform, filtering for lines that may only be at two specified orientations of the Gabor filter.

Referring to FIGS. 12, 14A and 14B, in some embodiments, the cross arm 112 connecting the utility wires 110 may be extracted using a Gabor filter. For example, the cross arm 112 may be extracted by rotating the orientation of the Gabor filter within a range from 85-95 degrees (preferably 90 degrees) producing a Gabor filter image 230 in FIG. 14A having Gabor detected features 232. A maximum value threshold may isolate the highest response from the Gabor filtered image 230 creating a threshold image 240. Once the threshold image 240 is created, linear features may be identified within the image similar to threshold image 220 producing detected cross bar lines 232.

Since many lines within the threshold image 240 may not be continuous, the entire cross bar 112 of FIG. 12 may not be detected. As such, each detected utility wire 222 of threshold image 220 (illustrated in FIG. 13B) may be intersected with the detected cross bar lines 242 of threshold image 240 (illustrated in FIG. 14B) to define endpoints 250 and 252 of the cross arm 112 between the utility wires 110 as illustrated in FIG. 15A. An extension 254 may be applied to the detected cross bar 242 based on the defined maximum and minimum endpoints 250 and 252 as illustrated in FIG. 15B.

Referring to FIG. 16, a correlation of endpoints 250 and 252 for the detected cross bar 242 may be initiated using an oblique image 260 of the object identified in the nadir image of FIG. 12. The correlation region in the oblique image 260 may be produced by projecting the endpoints 250 and 252 of the detected cross bar 242 into the oblique image 260, and correlating a region around epipolar lines 262 a and 262 b for each endpoint 250 and 252 of the detected cross bar 242. For example, the detected cross bar 242 may be correlated such that the detected cross bar 242 substantially lies on the cross bar 212.

Additionally, matching points between opposing oblique images having detected cross arms 242 may be identified. Using these points, a region of interest may be determined around each detected cross arm 242. Other features of the tower 114 may then be further identified using the region of interest. In one example, as illustrated in FIG. 17 a second TGP vertical plane P_(V2) may be defined and/or extended from the identified cross arm 112 such that the TGP vertical plane P_(V2) extends a pre-determined distance from the identified cross arm 112 and contains remaining features to be identified using methods as described herein.

Referring to FIGS. 18A-18D, in some embodiments, a template may be used to determine location of objects of interest on structures (e.g., cross bars 112 on tower 114). For example, FIGS. 12A-12D illustrate an exemplary embodiment of a utility template 159 for use in determining location of objects of interest, such as towers 114. Generally, a user may be supplied with one or more template structures. The templates may correlate with identified structures within the oblique images and/or vertical images. For example, the template 159 illustrated in FIGS. 12A-12D is a template of a “H” style tower 114. The user (e.g., human, processor) may align the template 159 to the object of interest.

For example, as illustrated in FIG. 18A, the user may align a first leg section 160 a of the “H” with a first leg 113 a of the tower 114. The user may then laterally stretch the template 159 such that a second leg section 113 b of the “H” of the template 159 may be aligned with a second leg 113 b of the tower 114 as illustrated in FIG. 12B. The user may vertically stretch the template 159 such that a cross line 162 of the template 159 may be aligned with the cross arm 112 of the tower 114 as illustrated in FIG. 12C. Finally, the user may adjust one or more lengths of the cross line 162 of the template 159 to substantially lie on the insulators 116 a-116 c of the tower 114. The template 159, once adjusted, may lie directly on the tower 114. By determining the vertical plane P_(V), as described herein, the location of the tower 114 in space may be known. The same template 159, as such, may be projected onto one or more images with opposing views of the tower 114. Slight adjustments may be made to compensate for any minor errors in the position and/or orientation measurements (e.g., position and/or orientation measurements due to camera error).

Standard stereo triangulation may also be used to determine location of each end of the line segments within the template 159. With the determination of the location of each end of the line segments within the template 159, the structure and location of the tower 114 within space may be determined and applied to one or more additional oblique and/or nadir images.

Referring to FIGS. 2, 6 and 9, the TGP vertical plane P_(V) may also aid in generation of additional three-dimensional points to augment the three-dimensional point cloud generated by the LIDAR scanner 22. The LIDAR scanner 22 may not identify a significant number of points on faces of the towers 114, as will be explained below. If, the LIDAR scanner is positioned and aimed towards nadir, upper structures of the tower 114 may obscure elements below the tower 114. In addition, truly vertical structures may not produce a significant return to the LIDAR scanner 22 if the LIDAR scanner 22 is aimed towards nadir. If the LIDAR scanner 22 is tilted forward or backward at an angle to try and produce a greater return, the point density may still be low due to the cosine effect. For example, if the LIDAR scanner 22 is tilted forward by 10 degrees, and the LIDAR scanner collects data at 50 points per square meter such that there is a 6″ sampling distance on the surface 16. Because the laser beam of the LIDAR scanner 22 intersects the tower 114 at an angle of 10 degrees, a 100 foot tall pole may only appear to be about 17 feet in length, and as such, may only get approximately 34 points over the height of the tower 114 (as compared to over 200 points produced the same distance on the surface 16). Additionally, the angle of incidence of the imagery may be closer to 45 degrees. The same 6″ resolution may produce 140 points on a face of the tower 114. The imagery, however, isn't at the same 6″ resolution, it may be at a 2″ resolution. This may produce increased resolution in each direction, such that if each pixel yields a correlation point, more than 420 points along the height of the tower 114 may be produced. Even further, the pixel resolution being generally smaller than the diameter of the tower 114, multiple points across the diameter of the tower 114 may be produced.

Referring to FIGS. 2 and 19, additional three dimensional points to include in the 3D point cloud may also be determined using successive oblique image (e.g., a first oblique image view 150 c and a second oblique image view 150 d). Both the first oblique image view 150 c and the second oblique image view 150 d may include an object of interest, such as, for example, the tower 114. The TGP vertical plane P_(V) may be determined using the methods as described herein. Once identified, the TGP vertical plane P_(V) may be used to select one or more overlapping oblique images oriented in the same direction (e.g., both forward looking camera orientations or both rearward looking camera orientation). The TGP vertical plane P_(V) may be used to identify the location of the tower 114 in each image 150 c and 150 d as described in detail herein using either one or both of rays 152 c and 152 d. The locations of the tower 114 in each image 150 c and 150 d may be used in an automated point matching algorithm (e.g., Semi Global Image Mapping algorithm) to find corresponding points between the two images 150 c and 150 d.

Either one of the projected rays 152 c and 152 d may then be used in a single ray-projection algorithm or (both of the rays 152 c and 152 d in a standard stereo photogrammetry algorithm) to find the real-world, three-dimensional location of the point of intersection that may be added to the point cloud produced by the LIDAR scanner 22. It should be noted that there may be alignment errors (e.g., inertial navigation system (INS) errors), and as such, the point cloud may be misaligned with the results produced by the LIDAR scanner 22. These two point clouds may be related through a similarity transform with uniform scale. The transform (e.g., iterative closest point algorithm) may iteratively estimate the distance between the results produced by the LIDAR scanner 22 and a point cloud produced by the images 150 c and 150 d. The resulting point cloud from combining results produced by the LIDAR scanner 22 and the point cloud produced by the images 150 c and 150 d may be denser and include points located on multiple faces of structures. For example, having two oblique image capturing devices 18 a and 18 b as illustrated in FIG. 1 may produce images on multiple sides of structures as compared to having only a single LIDAR scanner titled in a single direction gathering points on a single side of a structure. FIG. 20 is a three-dimensional point cloud generated from stereo pair oblique images showing points of the ground 16 and points of utility towers 114. As shown, the point cloud produced by the oblique images includes points on the horizontal surfaces (e.g., ground 16) and points on the vertical surfaces (e.g., vertical facet of the utility towers 114).

Although the preceding description has been described herein with reference to particular means, materials and embodiments, it is not intended to be limited to the particulars disclosed herein; rather, it extends to all functionally equivalent structures, methods and uses, such as are within the scope of the appended claims. 

What is claimed is:
 1. A method for analyzing a utility network comprising: capturing images of a geographic area encompassing at least a portion of a utility network with one or more image capturing devices, the images including utility wires and utility towers having cross bars as well as location and orientation data for each of the images corresponding to the location and orientation of the one or more image capturing devices capturing the image; and analyzing at least one of the images with a computer system running a utility network detection algorithm with a gabor filter to identify pixel locations within the at least one image of cross bars depicted within the images, wherein the gabor filter is a first gabor filter having a first longitudinal axis, the pixel locations are first pixel locations, and wherein analyzing further comprises analyzing at least one of the images with the computer system running the utility network detection algorithm with a second gabor filter having a second longitudinal axis substantially aligned with the utility wires depicted in the at least one image to identify second pixel locations within the at least one of the images of the utility wires depicted within the at least one of the images, wherein the first longitudinal axis extends within a range between 85 to 95 degrees relative to the second longitudinal axis.
 2. The method of claim 1, further comprising the step of converting the first and second pixel locations to real-world three dimensional coordinates using the first and second pixel locations and the location and orientation data corresponding to the location and orientation of the one or more image capturing devices capturing the images and storing the real-world three dimensional coordinates within a three-dimensional model of the utility network. 